<?php
/**
 * TReservation - Passerelle vers la table reservation
 * 
 * @package application
 * @subpackage models
 */
class TReservation extends Zend_Db_Table_Abstract
{
    /**
     * Nom de la table
     *
     * @var string
     */
    protected $_name         = 'reservation';
    
    /**
     * Nom de la clé primaire
     *
     * @var string
     */
    protected $_primary      = 'id';
    
    /**
     * Nom de la classe des enregistrements
     *
     * @var string
     */
    protected $_rowClass     = 'Zfbook_Db_Table_Row';
    
    /**
     * Nom de la classe des jeux d'enregistrements
     *
     * @var string
     */
    protected $_rowsetClass  = 'Zfbook_Db_Table_Rowset';
    
    /**
     * Liaisons entre les tables
     *
     * @var array
     */
    protected $_referenceMap = array(
        'Salle' => array(
        'columns'           => 'id_room',
        'refTableClass'     => 'TRoom',
        ),
        'Createur' => array(
        'columns'           => 'creator',
        'refTableClass'     => 'TUser',
        )
                                    );
    /**
     * Retourne une liste de réservations. 
     * Utilisé pour les services (soap, rest...)
     * 
     * @param string $dateBegin
     * @param string $dateEnd
     * @return array
     */
    public function getRestrictedList($dateBegin = null, $dateEnd = null)
    {
        $select = $this->select()->from($this);
        if ($dateBegin !== null) {
            $select->where('date_begin >= ?', $dateBegin);
        }
        if ($dateEnd !== null) {
            $select->where('date_end <= ?', $dateEnd);
        }
        return $this->fetchAll($select)->toArray();
    }
    
    /**
     * Retourne la liste des réservation dont $creatorId est créateur
     *
     * @param integer $creatorId
     * @return array
     */
    public function getByCreator($creatorId)
    {
        return $this->fetchAll($this->select()->from($this, 'id')
                                              ->where('creator = ?', (int)$creatorId)
                              )->toArray();
    }
}
